---
layout: docs
page_title: Consul on Kubernetes Version Compatibility
description: >-
  New releases require corresponding version updates to Consul on Kubernetes and its Helm chart. Review the compatibility matrix for Consul and consul-k8s and additional notes for integrating Vault and third-party platforms.
---

# Consul on Kubernetes Version Compatibility

For every release of Consul on Kubernetes, a Helm chart, `consul-k8s-control-plane` binary and a `consul-k8s` CLI binary is built and distributed through a single version. When deploying via Helm, the recommended best path for upgrading Consul on Kubernetes, is to upgrade using the same `consul-k8s-control-plane` version as the Helm Chart, as the Helm Chart and Control Plane binary are tightly coupled.

## Supported Consul and Kubernetes versions

Consul Kubernetes versions all of its components (`consul-k8s` CLI, `consul-k8s-control-plane`, and Helm chart) with a single semantic version. When installing or upgrading to a specific version, ensure that you are using the correct Consul version with the compatible Helm chart or `consul-k8s` CLI.

### Compatibility matrix

The following sections describe the compatibility matrix for
Consul Kubernetes components and dependencies.
Some releases of Consul Enterprise receive
[Long Term Support (LTS)](/consul/docs/enterprise/long-term-support)
and have an [extended compatibility window](#enterprise-long-term-support-releases)
compared to non-LTS Enterprise and community edition releases.

#### Standard releases

Unless otherwise noted, rows in the following compatibility table
apply to both Consul Enterprise and Consul community edition (CE).

| Consul version | Compatible `consul-k8s` versions | Compatible Kubernetes versions | Compatible OpenShift versions |
| -------------- | -------------------------------- | -------------------------------| ------------------------------|
| 1.20.x         | 1.6.x                            | 1.28.x - 1.30.x                | 4.13.x - 4.15.x               |
| 1.19.x         | 1.5.x                            | 1.27.x - 1.29.x                | 4.13.x - 4.15.x               |
| 1.18.x CE      | 1.4.x                            | 1.26.x - 1.29.x                | 4.13.x - 4.15.x               |
| 1.17.x         | 1.3.x                            | 1.25.x - 1.28.x                | 4.12.x - 4.15.x               |

#### Enterprise Long Term Support releases

Active Consul Enterprise
[Long Term Support (LTS)](/consul/docs/enterprise/long-term-support)
releases expand their Kubernetes version compatibility window
until the LTS release reaches its end of maintenance.

| Consul version | Compatible `consul-k8s` versions | Compatible Kubernetes versions | Compatible OpenShift versions |
| -------------- | -------------------------------- | -------------------------------| ------------------------------|
| 1.18.x Ent     | 1.4.x                            | 1.26.x - 1.29.x                | 4.13.x - 4.15.x               |
| 1.15.x Ent     | 1.1.x                            | 1.23.x - 1.28.x                | 4.10.x - 4.15.x               |

### Version-specific upgrade requirements

As of Consul v1.14.0, Kubernetes deployments use [Consul Dataplane](/consul/docs/connect/dataplane) instead of client agents. If you upgrade Consul from a version that uses client agents to a version that uses dataplanes, you must follow specific steps to update your Helm chart and remove client agents from the existing deployment. Refer to [Upgrading to Consul Dataplane](/consul/docs/k8s/upgrade#upgrading-to-consul-dataplane) for more information.

The v1.0.0 release of the Consul on Kubernetes Helm chart also introduced a change to the [`externalServers[].hosts` parameter](/consul/docs/k8s/helm#v-externalservers-hosts). Previously, you were able to enter a provider lookup as a string in this field. Now, you must include `exec=` at the start of a string containing a provider lookup. Otherwise, the string is treated as a DNS name. Refer to the [`go-netaddrs`](https://github.com/hashicorp/go-netaddrs) library and command line tool for more information.

## Supported Envoy versions

Supported versions of Envoy and `consul-dataplane` (for Consul K8s 1.0 and above) for Consul versions are also found in [Envoy - Supported Versions](/consul/docs/connect/proxies/envoy#supported-versions). Starting with `consul-k8s` 1.0, `consul-dataplane` will include a bundled version of Envoy. The recommended best practice is to use the default version of Envoy or `consul-dataplane` that is provided in the Helm `values.yaml` file, as that is the version that has been tested with the default Consul and Consul Kubernetes binaries for a given Helm chart.

## Vault as a Secrets Backend compatibility

Starting with Consul K8s 0.39.0 and Consul 1.11.x, Consul Kubernetes supports the ability to utilize Vault as the secrets backend for all the secrets utilized by Consul on Kubernetes.

| `consul-k8s` Versions    | Compatible Vault Versions | Compatible `vault-k8s` Versions |
| ------------------------ | --------------------------| ----------------------------- |
| 0.39.0 - latest          | 1.9.0 - latest            | 0.14.0 - latest               |

## Platform specific compatibility notes

### Red Hat OpenShift

You can enable support for Red Hat OpenShift by setting `enabled: true` in the `global.openshift` stanza. Refer to the [Deploy Consul on RedHat OpenShift tutorial](https://developer.hashicorp.com/consul/tutorials/kubernetes/kubernetes-openshift-red-hat) for instructions on deploying to OpenShift.

### VMware Tanzu Kubernetes Grid and Tanzu Kubernetes Grid Integrated Edition

Consul Kubernetes is [certified](https://marketplace.cloud.vmware.com/services/details/hashicorp-consul-1?slug=true) for both VMware Tanzu Kubernetes Grid, and VMware Tanzu Kubernetes Integrated Edition.

- Tanzu Kubernetes Grid is certified for version 1.3.0 and above. Only Calico is supported as the CNI Plugin.


